Development platforms are often provided by makers of computing systems to allow third parties to develop applications to interface with the computing system. For example, Oracle Corporation provides a development platform called the application development framework (“ADF”) to facilitate development of applications that access Oracle application servers. Oracle ADF includes a set of standards-based Java Server Faces (JSF) components with built-in Ajax functionality. With these components, web deployed user interfaces can be developed with a level of functionality and interactivity previously reserved for thick-client applications. The components offer data interaction, data visualization, and encapsulated browser side operations in a set of easy to use components that provide for very effective and efficient client application development.
Such development platforms often utilize web service specification languages, such as a web services description language (WSDL), to implement web services for the applications. A WSDL description of a web service (also referred to as a WSDL file) provides a machine-readable description of how the service can be called, what parameters it expects, and what data structures it returns. A client program connecting to a web service can therefore read the WSDL file to determine what operations are available on the server.
When consuming a web service, there are generally two ways to consume the service:                A web service proxy is generated based on the web service WSDL and then a data control is built based on the proxy classes.        A data control is generated directly based on the WSDL.        
In the case of bottom up developed services, the WSDL may be different on different application servers. In this type of development, Java classes are written first and then the WSDL is generated based on those classes. The generation is done on the platform the services will be deployed to (with different generation tools) and so the resulting WSDLs may be different. For example, the same message may correspond to different names of the elements in the different WSDLs. In some cases, the entire structure of the messages is also different.
For each of these different WSDLs (which really represent the same or similar services) a different proxy is generated, or a different data control is generated. If one is to use these WSDLs directly, it could lead to duplicate data controls and potentially duplicate forms. This is disadvantageous since it is undesirable to manage multiple versions of the same data control. Also, if a new platform is introduced, the application would require yet another data control for the new WSDL and a new form to use that data control. Additionally, when basing the data control directly on the WSDL, the data control attributes are limited to only the fields and methods of that WSDL.
Therefore, there is a need for an improved method, system, and computer program product that addresses these problems with the prior approaches.